Computerized systems commonly known as virtual personal assistants (“VPAs”) can interact with computing device users in a conversational manner. To do this, the VPA needs to be able to correctly interpret conversational user input, execute a task on the user's behalf, determine an appropriate response to the input, and present the response in a way that the user can readily understand and appreciate as being responsive to the input. A complex assortment of software components work together to accomplish these functions. Further, even very application-specific VPAs typically need to access and reason over a large amount of knowledge. Such knowledge includes information about those aspects of the world that the computing device user may wish to discuss with the VPA, the manner in which humans normally talk about those aspects of the world, and the applicable cultural norms, activities, and human behaviors. As a result, developing a VPA application traditionally has been an arduous task.